//
// Copyright (c) 2009 All Right Reserved
//
// vl
//
// 2009-01-01
// Contains ...
using JetBrains.Annotations;
using LargoCommon.Abstract;
using LargoCommon.Localization;
namespace LargoCommon.Music
{
///
/// Musical Block Wrap.
///
public class MusicalBlockWrap
{
///
/// Initializes a new instance of the class.
///
/// The given block.
public MusicalBlockWrap(MusicalBlock givenBlock) {
this.Block = givenBlock;
this.HarmonicModel = HarmonicModel.GetNewModel(givenBlock);
if (this.HarmonicModel == null) {
return;
}
ProcessLogger.Singleton.SendLogEvent(null, LocalizedMusic.String("Analyzing musical lines..."), 0);
this.MelodicModel = MelodicModel.GetNewModel("Inner", givenBlock);
this.RhythmicModel = RhythmicModel.GetNewModel("Inner", givenBlock);
var melodicAnalyzer = new MelodicAnalyzer();
melodicAnalyzer.AnalyzeMusicalLines(this.MelodicModel, this.RhythmicModel, givenBlock);
var model = HarmonicModel.GetNewModel(givenBlock);
var orchestration = new MusicalOrchestration(givenBlock); //// model.SourceMusicalBlock, ObjectName = model.FullName,
this.Orchestration = orchestration;
}
#region Public properties - Models
///
/// Gets or sets the harmonic model.
///
///
/// The harmonic model.
///
public HarmonicModel HarmonicModel { get; set; }
///
/// Gets or sets the rhythmic model.
///
///
/// The rhythmic model.
///
public RhythmicModel RhythmicModel { get; set; }
///
/// Gets or sets the melodic model.
///
///
/// The melodic model.
///
public MelodicModel MelodicModel { get; set; }
#endregion
///
/// Gets or sets The musical style
///
///
/// The style.
///
public MusicalStyle Style { get; set; }
///
/// Gets or sets the orchestration.
///
///
/// The orchestration.
///
public MusicalOrchestration Orchestration { get; set; }
///
/// Gets or sets the harmony.
///
///
/// The harmony.
///
[UsedImplicitly]
public MusicalHarmony Harmony { get; set; }
///
/// Gets or sets the block.
///
///
/// The block.
///
public MusicalBlock Block { get; set; }
}
}